概述
输入输出系统的发展概况
早期
分散连接
CPU和I/0设备串行工作 程序查询方式
接口模块和DMA阶段
总线连接
CPU和I/O设备并行工作(中断方式、DMA方式)
具有通道结构的阶段
具有I/0处理机的阶段
输入输出系统的组成
I/0软件
(1) I/O指令
- CPU指令的一部分
(2) 通道指令
通道自身的指令
指出数组的首地址、传送字数、操作命令
I/0硬件
设备 I/O接口
设备 设备控制器 通道
I/0设备与主机的联系方式
I/0设备编址方式
(1) 统一编址
- 可以直接用取数、存数指令对I/O设备进行访问
(2) 不统一编址
- 有专门的I/O指令
设备选址
用设备选择电路识别是否被选中
传送方式
(1) 串行
(2) 并行
联络方式
(1) 立即响应
(2) 异步工作采用应答信号
并行
串行
(3) 同步工作采用同步时标
I/0设备与主机的连接方式
(1) 辐射式连接
每台设备都配有一套控制线路和一组信号线
不便于增删设备
(2) 总线连接
- 便于增删设备
I/O设备与主机信息传送的控制方式
程序查询方式
CPU和I/O串行工作
踏步等待
程序中断方式
倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应。
没有踏步等待现象
中断现行程序
直接存储器存取方式(DMA)
主存和I/O之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃用)
CPU和I/O并行工作
I/0通道方式
I/O处理机方式
4、5两种方式详解可以参照《计算机系统结构》的教材。
前三种方式的CPU工作效率比较
I/0设备(了解)
概述
I/0设备大致分为三类:
人机交互设备
键盘、鼠标、的研究、显示器
计算机信息存储设备
磁盘、光盘、磁带
机-机通信设备
调制解调器等
输入设备
键盘
按键
判断哪个键按下
将此键翻译成ASCII码(编码键盘法)
鼠标
机械式:金属球、电位器
光电式:光电转换器
触摸屏
输出设备
显示器
(1) 字符显示:字符发生器
(2) 图形显示:主观图像
(3) 图像显示:客观图像
打印机
(1) 击打式:点阵式(逐字、逐行)
(2) 非打击式:激光(逐页)、喷墨(逐页)
其他
A/D、D/A
模拟/数字(数字/模拟)转换器。
终端
由键盘和显示器组成。
完成显示控制与存储、键盘管理及通信控制。
汉字处理
汉字输入、汉字存储、汉字输出。
多媒体技术
什么是多媒体?
多媒体计算机的关键技术?
I/0接口
概述
为什么设置接口?
实现设备的选择
实现数据缓冲达到速度匹配
实现数据串-并格式转换
实现电平转换
传送控制命令
反应设备的状态(“忙”、“就绪”、“错误”、“中断请求”)
接口的功能和组成
总线连接方式的I/O接口电路
(1) 设备选择线
(2) 数据线
(3) 命令线
(4) 状态线
接口的功能和组成
功能 | 组成 |
---|---|
选址功能 | 设备选择电路 |
传送命令的功能 | 命令寄存器、命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备状态标记 |
$$
\begin{cases}完成触发器D\工作触发器B\中断请求触发器INTR\屏蔽触发器MASK\end{cases}.
$$
I/O接口的基本组成
接口类型
按数据传送方式分类
并行接口(Intel 8255)
串行接口(Intel 8251)
按功能选择的灵活性分类
可编程接口(Intel 8255、Intel 8251)
不可编程接口(Intel 8212)
按通用性分类
通用接口(Intel 8255、Intel 8251)
专用接口(Intel 8279、Intel 8275)
按数据传送的控制方式分类
程序型接口
DMA型接口
程序查询方式
程序查询方式的流程
查询流程
程序流程
程序查询方式的接口电路
输入
① 当CPU通过I/O指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路。
② 若该接口的设备码与地址线上的代码吻合,其输出SEL有效。
③ I/O指令的启动命令经过“与非”门将工作触发器B置为1,将完成触发器D置为0。
④ 由B触发器启动设备工作。
⑤ 输入设备将数据送至数据缓冲寄存器(DBR)中。
⑥ 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设准备就绪。
⑦ D触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”。
⑧ CPU执行输入指令,将DBR中的数据送至CPU的通用寄存器,再存入主存相关单元。
输出
① 当CPU通过I/O指令启动输出设备时,指令的设备码字段通过地址线送至设备选择电路。
② 若该接口的设备码与地址线上的代码吻合,其输出SEL有效。
③ I/O指令的启动命令经过“与非”门将工作触发器B置为1,将完成触发器D置为0。
④ CPU通过输出指令将数据送至数据缓冲 寄存器(DBR)中。
⑤ 由B触发器启动设备工作,将数据从DBR中取走。
⑥ 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设输出完成。
⑦ D触发器以“准备就绪”状态通知CPU,表示“数据缓冲空”。
⑧ CPU可再次向DBR输出数据,进行第二次传送。
程序中断方式
中断的概念
计算机在执行程序的过程中,当出现异常情况或特殊情况时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序,这就是“中断”。
计算机系统引入中断技术的原因:
为了提高计算机的整机效率。
为了应对突发事件。
例如,当计算机运行过程中,若出现突然掉电这种异常情况,将会导致CPU中的全部信息丢失。倘若在突然掉电的瞬间立即启动另一个备份电源,并迅速进行一些必要的处理,例如,将有用的信息送至不受电源影响的存储系统内,待电源恢复后接着使用,这种处理技术也要用中断技术来实现。
为了实时控制的需要。
在实时控制领域中,要求CPU能即时响应外来信号的请求,并能完成相应的操作,也都要求采用中断技术。
中断的产生
以打印机为例
CPU与打印机部分并行工作
程序中断方式的接口电路
配置中断请求触发器和中断屏蔽触发器
INTR:中断请求触发器(INTR=1表示有请求)
MASK:中断屏蔽触发器(MASK=1表示被屏蔽)
D:完成触发器
&:与非门,其运算为$\overline{A\cdot B}$。
1:非门,其运算为$\overline{A}$,相当于$\overline{A\cdot 1}$。
&和1:效果相当于与门,但由于电路的原因,只能使用与非门。
排队器
$$
排队\begin{cases} 硬件\ \ 在CPU内或在接口电路中(链式排队器) \ 软件\ \ 详见第八章\end{cases}
$$
设备1、2、3、4的优先级按降序排列
$INTR_i=1$有请求,即$\overline{INTR_i}=0$
第一个反相器左侧接地(恒为0),经过反向器,信号变为1,
若${INTR_1}$有请求,即$INTR_1=1$,经过上方的与非门和非门,选中1号设备;
若${INTR_1}$无请求,即$\overline{INTR_1}=1$,经过与非门,将1信号传到下一个排队器。
依此类推…
- 中断向量地址形成部件
$$
入口地址\begin{cases} 由软件产生\ \ 详见第八章 \ 硬件向量法\ \ 由硬件产生向量地址,再由向量地址找到入口地址\end{cases}
$$
程序中断方式接口电路的基本组成
I/O中断处理过程
CPU响应中断的条件和时间
条件
允许中断触发器EINT=1
用开中断指令将EINT置“1”
用关中断指令将EINT置“0”或硬件自动复位
时间
当D = 1(随机)且MASK = 0时
在每条指令执行阶段的结束前
CPU发中断查询信号(将INTR置“1”)
I/O中断处理过程
① 由CPU发启动I/O设备的命令,将I/O接口中的B置“1”,D触发器置”0“。
② 接口启动输入设备开始工作。
③ 输入设备将数据送入数据缓冲寄存器。
④ 输入设备向接口发出”设备工作结束“信号,将D置”1“,B置”0“,标志设备准备就绪。
⑤ 当设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发出中断查询信号。
⑥ 设备中断请求触发器INTR被置”1“,标志设备向CPU提出中断请求。与此同时,INTR送至排队器,进行中断判优。
⑦ 若CPU允许中断(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址。
⑧ 向量地址送至PC,作为下一条指令的地址。
⑨ 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元。
⑩ 中断服务程序的最后一条指令是中断返回指令,当其执行结束时,中断返回至原程序的断点处。至此,一个完整的程序中断处理过程即告结束。
综上所述,可将异常中断处理过程简单归纳为中断请求、中断判优、中断响应、中断服务和中断返回5个阶段。